/* ************************************************************************
 *       Filename:  link.h
 *    Description:  
 *        Version:  1.0
 *        Created:  2018年09月29日 11时22分35秒
 *       Revision:  none
 *       Compiler:  gcc
 *         Author:  YOUR NAME (), 
 *        Company:  
 * ************************************************************************/

#ifndef __LINK_H__
#define __LINK_H__

#include "tools.h"

typedef struct s_msg
{
	int  count;
	char str[20];
	struct s_msg *next;
}s_msg_t;

// 创建/追加链表
void create_link(s_msg_t **head, s_msg_t *p_new);

// 释放链表
void free_link(s_msg_t **head);

// 打印链表节点
void show_link_nodes(s_msg_t *head);

// 查找节点 按count
s_msg_t *serach_node_for_link_as_count(s_msg_t *head, int count);

// 查找节点 按Buffer
s_msg_t *serach_node_for_link_as_buffer(s_msg_t *head, char *buffer);

// 删除节点 按Count
void delete_nodes_for_link_as_count(s_msg_t **head, int count);

// 删除节点 按Buffer
void delete_nodes_for_link_as_buffer(s_msg_t **head, char *buffer);

// 插入链表
void insert_nodes_for_link_as_count(s_msg_t **head, s_msg_t *p_new);

// 链表排序
void order_link(s_msg_t **head);

// 链表反转
void reverse_link(s_msg_t **head);

#endif

